Een DAL interface
Probleem
Design
T klasse
In dit voorbeeld wijst de letter T
op een type dat alleen bekend is in het programma dat de IDal
methode oproept. De methode IDal
kan werken met het voorbeeld van T alsof het een echt type is, maar dat is het niet.
De IDal
interface weet niet voor welke entiteit die zal gebruikt worden. Dat weet alleen de Dal klasse die ervan overerft, bv. Dal.EventCategory
. Dus moeten we een 'algemeen' object type in de declaratie in de interface gebruiken en dat is T
.
We voegen de Message
Eigenschap toe om feedback aan de gebruiker te kunnen geven.
De methoden ReadOne
en Delete
hebben als parameter een id
. Daarin wordt de Id
van de rij meegegeven die benaderd moet worden. De rest van de gegevens hebben we in die methoden niet nodig. We hebben we alle kolomgegevens nodig voor de methoden Update
en Create
en daarom hebben die als parameter een BLL object van de desbetreffende entiteit. De ReadOne
methode retourneert een BLL object met alle kolom gegevens van de gevonden rij. De ReadAll methode retourneert een generieke lijst met voor elke rij in de tabel een BLL object.
Oplossing
using System.Collections.Generic; namespace FricFrac.Dal { interface IDal<T> { string Message { get; } int RowCount { get; } List<T> ReadAll(); T ReadOne(int id); int Create(T bll); int Update(T bll); int Delete(int id); } }